function Start() if math.random(1,2) == 1 then local Done = false local Height = 8 local Last = Vector3.new(0,0,-20) local H = Instance.new("Hint",script) local Sound = Instance.new("Sound",script) Sound.SoundId = "rbxasset://sounds/electronicpingshort.wav" Sound.Volume = 0.2 local HitSound = Instance.new("Sound",script) HitSound.SoundId = "rbxasset://sounds/snap.mp3" function Number(num) local UseText = "" local StoredScore = num local Thousand = false for i = 1,StoredScore / 1000 do Thousand = true StoredScore = StoredScore - 1000 UseText = UseText.." TH" end if Thousand then UseText = UseText..[[ ]] end local Hundred = false for i = 1,StoredScore / 100 do Hundred = true StoredScore = StoredScore - 100 UseText = UseText.." H" end if Hundred then UseText = UseText..[[ ]] end local Ten = false for i = 1,StoredScore / 10 do Ten = true StoredScore = StoredScore - 10 UseText = UseText.." T" end if Ten then UseText = UseText..[[ ]] end for i = 1,StoredScore do StoredScore = StoredScore - 1 UseText = UseText.." I" end UseText = UseText.." " return UseText end H.Text = [[ JJK83's "Climb TH H H H H H H" is about to start. Jump from platform to platform and reach the goal. Don't skip any platform!]] for i = 1,15 do if Sound and Sound.Parent then Sound.PlaybackSpeed = i * 0.3 Sound.TimePosition = 0.2 Sound:Play() end wait(0.06) end Sound.PlaybackSpeed = 1 wait(5) for i = 1,5 do Sound.TimePosition = 0.1 Sound:Play() H.Text = "Get ready! "..Number(6 - i) wait(1) end Sound.PlaybackSpeed = 2 Sound:Play() H.Text = "Start!" print("Start") while Last.Y < 1600 do wait(1) if Height < 1600 then H.Text = [[ Height: ]]..Number(Height) if Height % 200 == 0 then print(Height) end end Sound.PlaybackSpeed = math.min(0.8 + (Last.Y / 8 * 0.03125),8) Sound.TimePosition = 0.1 Sound:Play() local P = Instance.new("Part",script) P.Position = Vector3.new(Last.X + (math.random(0,1) - 0.5) * 12,Height,Last.Z + (math.random(0,1) - 0.5) * 12) local Pos = P.Position P.Size = Vector3.new(8,1,8) P.Anchored = true P.Locked = true P.BrickColor = BrickColor.new("Bright red") P.Material = Enum.Material.Granite Height = Height + 8 Last = P.Position function Changed() if Done == false then P.Position = Pos P.Orientation = Vector3.new() P.Velocity = Vector3.new() P.RotVelocity = Vector3.new() P.Anchored = true P.Locked = true P.Size = Vector3.new(8,1,8) end end P.Changed:Connect(Changed) function Touched(hit) local Above = false local C = script:GetChildren() for i = 1,#C do if C[i]:IsA("BasePart") and C[i].Material ~= Enum.Material.Marble and C[i].Position.Y < P.Position.Y then Above = true end end if Above == false and P.Material ~= Enum.Material.Marble and P.Material ~= Enum.Material.SmoothPlastic and P.Material ~= Enum.Material.Neon then Sound.PlaybackSpeed = 1 Sound:Play() P.BrickColor = BrickColor.new("Cyan") P.Material = Enum.Material.Marble -- elseif Above == true and Done == false and hit and hit.Parent and hit.Parent.ClassName == "Model" then -- hit.Parent:TranslateBy(Vector3.new(0,-360,0)) -- for i = 1,10 do -- if HitSound and HitSound.Parent then -- HitSound.PlaybackSpeed = 1.5 - i * 0.1 -- HitSound.TimePosition = 0.2 -- HitSound:Play() -- end -- wait(0.04) -- end end end P.Touched:Connect(Touched) if Last.Y >= 1600 then H.Text = [[ The goal is ready. Go for it! ]]..Number(Last.Y) print(Last.Y.."/Goal ready") local G = P P.BrickColor = BrickColor.new("Bright yellow") delay(0,function() while G and G.Parent do wait(0.12) if G then G.Material = Enum.Material.Neon end wait(0.12) if G then G.Material = Enum.Material.SmoothPlastic end end end) function Touched(hit) if Done == false and hit and hit.Parent:IsA("Model") and hit.Parent:FindFirstChildWhichIsA("Humanoid") and hit.Parent:FindFirstChildWhichIsA("Humanoid"):GetState() ~= Enum.HumanoidStateType.Dead then local Pl = game:GetService("Players"):GetPlayerFromCharacter(hit.Parent) if Pl then Done = true H.Text = "Congratulations! "..Pl.Name.." got to the top!" print(Pl.Name) for i = 1,6 do Sound.PlaybackSpeed = 1.8 Sound.TimePosition = 0.1 Sound:Play() wait(0.2) end local Oof = false local C = script:GetChildren() for i = 1,#C do if C[i]:IsA("BasePart") and C[i].Material == Enum.Material.Granite then Oof = true end end if Oof == false then for i = 1,100 do HitSound.PlaybackSpeed = 1 HitSound.Volume = math.min(i * 0.02,1) HitSound.TimePosition = 0.1 HitSound:Play() local C = script:GetChildren() for i = 1,#C do if C[i]:IsA("BasePart") then C[i].Velocity = Vector3.new(math.random(-16,16),0,math.random(-16,16)) end end wait(0.04) end local C = script:GetChildren() for i = 1,#C do HitSound.PlaybackSpeed = 0.6 HitSound.Volume = math.min(i * 0.02,1) HitSound.TimePosition = 0.15 HitSound:Play() local c = script:GetChildren() for i = 1,#c do if c[i]:IsA("BasePart") and c[i].Anchored == true then c[i].Velocity = Vector3.new(math.random(-16,16),0,math.random(-16,16)) end end if C[i] and C[i]:IsA("BasePart") then C[i].Anchored = false C[i]:BreakJoints() C[i].Velocity = Vector3.new(math.random(-60,60),math.random(-60,60),math.random(-60,60)) C[i].RotVelocity = Vector3.new(math.random(-60,60),math.random(-60,60),math.random(-60,60)) function Touched() Sound.PlaybackSpeed = math.random(80,240) / 100 Sound.TimePosition = 0.1 Sound.Volume = 1 Sound:Play() game:GetService("Debris"):AddItem(C[i],1.5) end C[i].Touched:Connect(Touched) game:GetService("Debris"):AddItem(C[i]) wait(0.04) end end for i = 1,30 do if HitSound and HitSound.Parent then HitSound.PlaybackSpeed = 0.6 - i * 0.015 HitSound.TimePosition = 0.2 HitSound:Play() end wait(0.06) end for i = 1,20 do H.Text = [[ Intermission... ]]..Number(21 - i) wait(1) end script:ClearAllChildren() Start() else print("Reject") wait(1) Sound.PlaybackSpeed = 0.6 Sound:Play() H.Text = "...They have been rejected for a reason!" if Pl and Pl.Character then Pl.Character:BreakJoints() for i = 1,30 do if HitSound and HitSound.Parent then HitSound.PlaybackSpeed = 0.6 - i * 0.015 HitSound.TimePosition = 0.2 HitSound:Play() end wait(0.06) end end Done = false H.Text = [[ The goal is ready. Go for it! ]]..Number(Last.Y) end end end end P.Touched:Connect(Touched) wait(0.4) for i = 1,15 do if Sound and Sound.Parent then Sound.PlaybackSpeed = i * 0.3 Sound.TimePosition = 0.2 Sound:Play() end wait(0.06) end break end end else local Done = false local Height = 8 local TouchedHeight = 0 local Last = Vector3.new(0,0,-20) local H = Instance.new("Hint",script) local Sound = Instance.new("Sound",script) Sound.SoundId = "rbxasset://sounds/electronicpingshort.wav" Sound.Volume = 0.2 local Ping = Instance.new("Sound",script) Ping.SoundId = "rbxasset://sounds/electronicpingshort.wav" Ping.Volume = 0.4 local HitSound = Instance.new("Sound",script) HitSound.SoundId = "rbxasset://sounds/snap.mp3" local TickSound = Instance.new("Sound",script) TickSound.SoundId = "rbxasset://sounds/clickfast.wav" TickSound.Volume = 0.4 function Number(num) local UseText = "" local StoredScore = num local Thousand = false for i = 1,StoredScore / 1000 do Thousand = true StoredScore = StoredScore - 1000 UseText = UseText.." TH" end if Thousand then UseText = UseText..[[ ]] end local Hundred = false for i = 1,StoredScore / 100 do Hundred = true StoredScore = StoredScore - 100 UseText = UseText.." H" end if Hundred then UseText = UseText..[[ ]] end local Ten = false for i = 1,StoredScore / 10 do Ten = true StoredScore = StoredScore - 10 UseText = UseText.." T" end if Ten then UseText = UseText..[[ ]] end for i = 1,StoredScore do StoredScore = StoredScore - 1 UseText = UseText.." I" end UseText = UseText.." " return UseText end H.Text = [[ JJK83's "Endless Climb" is about to start. Jump from platform to platform and try to stay in the game.]] for i = 1,15 do if Sound and Sound.Parent then Sound.PlaybackSpeed = i * 0.3 Sound.TimePosition = 0.2 Sound:Play() end wait(0.06) end Sound.PlaybackSpeed = 1 wait(5) for i = 1,5 do Sound.TimePosition = 0.1 Sound:Play() H.Text = "Get ready! "..Number(6 - i) wait(1) end Sound.PlaybackSpeed = 2 Sound:Play() H.Text = "Start!" print("Start") local LastName = "Nobody" local Timer = 40 local SoloTimer = 40 local Alternate = false local Go = -5 local Told = false while Timer > 0 do wait(0.25) if TouchedHeight ~= 0 and Go >= 0 and Timer >= 39 then H.Text = [[ Height: ]]..Number(TouchedHeight) if TouchedHeight % 200 == 0 and Told == false then print(TouchedHeight) Told = true end end if Go < 0 then Sound.PlaybackSpeed = math.min(0.8 + (Last.Y / 8 * 0.03125),8) Sound.TimePosition = 0.1 Sound:Play() local P = Instance.new("Part",script) P.Position = Vector3.new(Last.X + (math.random(0,1) - 0.5) * 12,Height,Last.Z + (math.random(0,1) - 0.5) * 12) local Pos = P.Position P.Size = Vector3.new(8,1,8) P.Anchored = true P.Locked = true P.BrickColor = BrickColor.new("Bright orange") P.Material = Enum.Material.Granite local Spin = false if (Height > 1600 and math.random(1,4) == 1) or (Height > 3200 and math.random(1,2) == 1) or (Height > 6400) then Spin = true end local SetOrientation = P.Orientation if Spin then local Sel = Instance.new("SelectionBox",P) Sel.LineThickness = 0.05 Sel.SurfaceTransparency = 0.8 Sel.Adornee = P local Select = math.random(0,1) if Select == 0 then Sel.Color3 = Color3.new(1,0,1) Sel.SurfaceColor3 = Color3.new(1,0,1) P.RotVelocity = Vector3.new(0,3.141592,0) delay(0,function() while P and P.Parent and P.Anchored == true do wait(0.06) if P then SetOrientation = P.Orientation + Vector3.new(0,3.141592*57.2958*0.06,0) P.Orientation = SetOrientation end end end) else Sel.Color3 = Color3.new(0,1,0) Sel.SurfaceColor3 = Color3.new(0,1,0) P.RotVelocity = Vector3.new(0,-3.141592,0) delay(0,function() while P and P.Parent and P.Anchored == true do wait(0.06) if P then SetOrientation = P.Orientation + Vector3.new(0,-3.141592*57.2958*0.06,0) P.Orientation = SetOrientation end end end) end end local SetRot = P.RotVelocity Height = Height + 8 Last = P.Position delay(0,function() while P and P.Parent and Done == false and Pos.Y - TouchedHeight > -152 do P.Position = Pos P.Velocity = Vector3.new() P.Orientation = SetOrientation P.RotVelocity = SetRot P.Anchored = true P.Locked = true P.Size = Vector3.new(8,1,8) wait(0.06) end end) function Touched(hit) if P.Anchored and hit and hit.Parent and hit.Parent.ClassName == "Model" then local Above = false local C = script:GetChildren() for i = 1,#C do if C[i]:IsA("BasePart") and C[i].Material ~= Enum.Material.Marble and C[i].Position.Y < P.Position.Y then Above = true end end if Above == false and P.Material ~= Enum.Material.Marble then Go = Go - 1 Told = false Timer = 40 TouchedHeight = P.Position.Y Sound.PlaybackSpeed = 1 Sound:Play() P.BrickColor = BrickColor.new("Bright yellow") P.Material = Enum.Material.Marble LastName = hit.Parent.Name local C = script:GetChildren() for i = 1,#C do if C[i] and C[i]:IsA("BasePart") and C[i].Position.Y - TouchedHeight <= -152 and C[i].Anchored == true then HitSound.PlaybackSpeed = math.random(80,160) / 100 HitSound.TimePosition = 0.15 HitSound:Play() C[i].Anchored = false C[i]:BreakJoints() C[i].Velocity = Vector3.new(math.random(-60,60),math.random(-60,60),math.random(-60,60)) C[i].RotVelocity = Vector3.new(math.random(-60,60),math.random(-60,60),math.random(-60,60)) function Touched() Ping.PlaybackSpeed = math.random(80,240) / 100 Ping.TimePosition = 0.1 Ping.Volume = 0.4 Ping:Play() game:GetService("Debris"):AddItem(C[i],1.5) end C[i].Touched:Connect(Touched) game:GetService("Debris"):AddItem(C[i]) end end end if hit.Parent.Name ~= LastName and SoloTimer > 0 then SoloTimer = math.min(Timer,40) end end end P.Touched:Connect(Touched) Go = Go + 1 end if TouchedHeight >= 160 then Timer = Timer - 1 if LastName ~= "Nobody" then SoloTimer = SoloTimer - 1 if ((SoloTimer < 20 and SoloTimer % 2 == 0) or SoloTimer < 10) and SoloTimer >= 0 then TickSound:Play() TickSound.PlaybackSpeed = 4 end end if Timer == 20 then H.Text = [[ Don't just stand there! ]]..Number(TouchedHeight) print("Hurry") end if (Timer < 20 and Timer % 2 == 0) or Timer < 10 then TickSound:Play() Alternate = not Alternate if Alternate then TickSound.PlaybackSpeed = 2 else TickSound.PlaybackSpeed = 1.5 end elseif Timer >= 20 then Alternate = false end end if SoloTimer == 0 and LastName ~= "Nobody" then local Wow = Instance.new("Hint",script) Wow.Text = "Keep going, "..LastName.."!" print(LastName) game:GetService("Debris"):AddItem(Wow,3) delay(0,function() for i = 1,15 do if Sound and Sound.Parent then Sound.PlaybackSpeed = i * 0.3 Sound.TimePosition = 0.2 Sound:Play() end wait(0.06) end end) end end Done = true H.Text = [[ You did good, ]]..LastName..[[! ]]..Number(TouchedHeight) print(TouchedHeight) for i = 1,6 do Sound.PlaybackSpeed = 1.8 Sound.TimePosition = 0.1 Sound:Play() wait(0.2) end for i = 1,30 do HitSound.PlaybackSpeed = 1 HitSound.Volume = math.min(i * 0.02,1) HitSound.TimePosition = 0.1 HitSound:Play() local C = script:GetChildren() for i = 1,#C do if C[i]:IsA("BasePart") then C[i].Velocity = Vector3.new(math.random(-16,16),0,math.random(-16,16)) end end wait(0.04) end local C = script:GetChildren() for i = 1,#C do HitSound.PlaybackSpeed = 0.6 HitSound.Volume = 1 HitSound.TimePosition = 0.15 HitSound:Play() local c = script:GetChildren() for i = 1,#c do if c[i]:IsA("BasePart") and c[i].Anchored == true then c[i].Velocity = Vector3.new(math.random(-16,16),0,math.random(-16,16)) end end if C[i] and C[i]:IsA("BasePart") then C[i].Anchored = false C[i]:BreakJoints() C[i].Velocity = Vector3.new(math.random(-60,60),math.random(-60,60),math.random(-60,60)) C[i].RotVelocity = Vector3.new(math.random(-60,60),math.random(-60,60),math.random(-60,60)) function Touched() Ping.PlaybackSpeed = math.random(80,240) / 100 Ping.TimePosition = 0.1 Ping.Volume = 0.4 Ping:Play() game:GetService("Debris"):AddItem(C[i],1.5) end C[i].Touched:Connect(Touched) game:GetService("Debris"):AddItem(C[i]) wait(0.04) end end for i = 1,30 do if HitSound and HitSound.Parent then HitSound.PlaybackSpeed = 0.6 - i * 0.015 HitSound.TimePosition = 0.2 HitSound:Play() end wait(0.06) end for i = 1,20 do H.Text = [[ Intermission... ]]..Number(21 - i) wait(1) end script:ClearAllChildren() Start() end end Start()